<template>
    <!-- 问题： 我们不知道什么时候能够拿到 max 值，但是，总归有一刻，会得到一个真正的 max 值 -->
    <!-- 我们可以 使用 watch 属性监听，来 监听 父组件传递过来的 max 值，不管 watch 会被触发几次，但是，最后一次，肯定是一个 合法的 max 数值 -->
    <div class="mui-numbox" data-numbox-min="1">
        <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
        <input id="test" class="mui-input-numbox" type="number" value="1" @change="countChanged" ref="numbox" />
        <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
    </div>

    <!-- 分析：子组件上面时候把数据传递给父组件 -->
    <!-- 数量的文本框数据只要发生改变就把数据传过去，所以使用文本框的change事件来监听文本框数据改变 -->
</template>
<script>
    import mui from '../../lib/mui/js/mui.js';
    export default {
        mounted() {
            //初始化数字选择框组件
            mui('mui-numbox').numbox();
            // console.log(this.max); //没有拿到max，因为父组件那边时异步获取的
        },
        methods: {
            countChanged() {
                //每当文本框的数据被修改时，立即把最新的数据通过事件调用，传递给父组件
                //this.$refs.numbox通过引用相当于得到原生DOM
                // console.log(this.$refs.numbox.value);
                //通过事件调用传值给父组件
                this.$emit('getcount', parseInt(this.$refs.numbox.value));
            }
        },
        props: ['max'], //接受传递的属性值
        watch: {
            // 属性监听
            max: function(newVal, oldVal) {
                // 使用 JS API 设置 numbox 的最大值
                mui('.mui-numbox')
                    .numbox()
                    .setOption('max', newVal);
            }
        }
    };
</script>
<style lang="less" scoped>
</style>